思路如下
首先先写一个函数判断两个洞是否相连,即两洞之间距离是否小于等于球直径(注意是直径)。
1 | struct dong {//为了程序简洁美观,定义一个结构体表示洞的坐标 |
第二个难点在于如何判断是否可以穿过奶酪,对此我们可以模拟老鼠钻洞(run函数)见代码:
1 | void run(int x) { |
思考一下,对于这个函数我们要从最下面的一个洞开始走,凡是走过的洞都不会再走,但如果前方不能再走了还会返回这个洞寻找下一个能连接到此洞的洞,这样的话就可以将每一个能和底边连接到的洞全部判断一遍,只要其中有洞连接到顶端,就用jud记录为1。因此等会在主函数中我们用循环把能连接到底边的所有洞找到均调用此函数即可。
完整代码:
1 |
|